package cn.lg.soar.mvc.handler;

import lombok.Getter;
import lombok.Setter;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Lazy;

import java.util.List;
import java.util.Set;

/**
 * 访问ip过滤
 * @author luguoxiang
 * @date 2022/6/27
 * 开源项目：https://gitee.com/lgx1992/lg-soar 求star！请给我star！请帮我点个star！
 */
@Lazy
@Getter
@Setter
@ConfigurationProperties(value = "lg.access.ip-filter")
public class IpFilterProps {

    /**
     * 开启ip过滤
     */
    private Boolean enabled;

    /**
     * 白名单
     */
    private List<Config> whitelist;

    /**
     * 黑名单
     */
    private List<Config> blacklist;

    @Getter
    @Setter
    public static class Config {

        /**
         * 拦截路径（支持模糊匹配， 例: /* 或 /**）
         */
        private Set<String> paths;

        /**
         * 拦截的ip
         */
        private Set<String> ips;

    }

}
